home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1996 May: Tool Chest / Developer CD Series May 1996 (Tool Chest) (Apple Computer) (1996).iso / Tool Chest / Interfaces & Libraries / Interfaces / PInterfaces / SocketServices.p < prev    next >
Encoding:
Text File  |  1995-08-23  |  18.8 KB  |  653 lines  |  [TEXT/MPS ]

  1. {
  2.      File:        SocketServices.p
  3.  
  4.      Contains:    This file contains constants and data structures that
  5.                 describe the Socket Service interface to Card Services.
  6.  
  7.      Version:    Technology: PCMCIA Software 2.0
  8.                 Package:    Universal Interfaces 2.1.1 in “MPW Latest” on ETO #19
  9.  
  10.      Copyright:    © 1984-1995 by Apple Computer, Inc.
  11.                  All rights reserved.
  12.  
  13.      Bugs?:        If you find a problem with this file, use the Apple Bug Reporter
  14.                  stack.  Include the file and version information (from above)
  15.                  in the problem description and send to:
  16.                      Internet:    apple.bugs@applelink.apple.com
  17.                      AppleLink:    APPLE.BUGS
  18.   
  19. }
  20.  
  21. {$IFC UNDEFINED UsingIncludes}
  22. {$SETC UsingIncludes := 0}
  23. {$ENDC}
  24.  
  25. {$IFC NOT UsingIncludes}
  26.  UNIT SocketServices;
  27.  INTERFACE
  28. {$ENDC}
  29.  
  30. {$IFC UNDEFINED __SOCKETSERVICES__}
  31. {$SETC __SOCKETSERVICES__ := 1}
  32.  
  33. {$I+}
  34. {$SETC SocketServicesIncludes := UsingIncludes}
  35. {$SETC UsingIncludes := 1}
  36.  
  37.  
  38. {$IFC UNDEFINED __TYPES__}
  39. {$I Types.p}
  40. {$ENDC}
  41. {    ConditionalMacros.p                                            }
  42.  
  43. {$IFC UNDEFINED __MIXEDMODE__}
  44. {$I MixedMode.p}
  45. {$ENDC}
  46.  
  47. {$PUSH}
  48. {$ALIGN MAC68K}
  49. {$LibExport+}
  50.     
  51. TYPE
  52.     SS_BYTE = Byte;
  53.  
  54.     SS_FLAGS8 = Byte;
  55.  
  56.     SS_IRQ = Byte;
  57.  
  58.     SS_PWRLEVEL = Byte;
  59.  
  60.     SS_ADAPTER = UInt16;
  61.  
  62.     SS_BCD = UInt16;
  63.  
  64.     SS_COUNT = UInt16;
  65.  
  66.     SS_EDC = UInt16;
  67.  
  68.     SS_FLAGS16 = UInt16;
  69.  
  70.     SS_PAGE = UInt16;
  71.  
  72.     SS_PWRINDEX = UInt16;
  73.  
  74.     SS_SIGNATURE = UInt16;
  75.  
  76.     SS_SKTBITS = UInt16;
  77.  
  78.     SS_SOCKET = UInt16;
  79.  
  80.     SS_SPEED = UInt16;
  81.  
  82.     SS_WINDOW = UInt16;
  83.  
  84.     SS_WORD = UInt16;
  85.  
  86.     SS_BASE = UInt32;
  87.  
  88.     SS_FLAGS32 = UInt32;
  89.  
  90.     SS_OFFSET = UInt32;
  91.  
  92.     SS_SIZE = UInt32;
  93.  
  94.     SS_PTR = Ptr;
  95.  
  96.     SS_RETCODE = OSErr;
  97.  
  98.     SS_SCHARTBL = RECORD
  99.         sktCaps:                UInt16;                                    {    SS_FLAGS16}
  100.         activeHigh:                UInt32;                                    {    SS_FLAGS32}
  101.         activeLow:                UInt32;                                    {    SS_FLAGS32}
  102.     END;
  103.  
  104.     SS_SISTRUCT = RECORD
  105.         bufferLength:            UInt16;                                    {    SS_WORD}
  106.         dataLength:                UInt16;                                    {    SS_WORD}
  107.         charTable:                SS_SCHARTBL;                            {    SS_FLAGS16}
  108.     END;
  109.  
  110. {$SETC STR_SIZE := 24}
  111.     SS_VISTRUCT = RECORD
  112.         bufferLength:            UInt16;                                    {    SS_WORD}
  113.         dataLength:                UInt16;                                    {    SS_WORD}
  114.         szImplementor:            ARRAY [0..0] OF CHAR;                    {    SS_WORD}
  115.         padding:                ARRAY [0..0] OF SInt8; (* Byte *)        {    }
  116.     END;
  117.  
  118.     SS_ACHARTBL = RECORD
  119.         adpCaps:                UInt16;                                    {    SS_FLAGS16}
  120.         activeHigh:                UInt32;                                    {    SS_FLAGS32}
  121.         activeLow:                UInt32;                                    {    SS_FLAGS32}
  122.     END;
  123.  
  124.     SS_PWRENTRY = RECORD
  125.         powerLevel:                SInt8; (* Byte *)                        {    SS_PWRLEVEL}
  126.         validSignals:            SInt8; (* Byte *)                        {    SS_FLAGS8}
  127.     END;
  128.  
  129.     SS_AISTRUCT = RECORD
  130.         bufferLength:            UInt16;                                    {    SS_WORD}
  131.         dataLength:                UInt16;                                    {    SS_WORD}
  132.         charTable:                SS_ACHARTBL;
  133.         numPwrEntries:            UInt16;                                    {    SS_WORD}
  134.         pwrEntryPtr:            ^SS_PWRENTRY;
  135.     END;
  136.  
  137.     SS_MEMWINTBL = RECORD
  138.         memWndCaps:                UInt16;                                    {    SS_FLAGS16}
  139.         firstByte:                UInt32;                                    {    SS_BASE}
  140.         lastByte:                UInt32;                                    {    SS_BASE}
  141.         minSize:                UInt32;                                    {    SS_SIZE}
  142.         maxSize:                UInt32;                                    {    SS_SIZE}
  143.         reqGran:                UInt32;                                    {    SS_SIZE}
  144.         reqBase:                UInt32;                                    {    SS_SIZE}
  145.         reqOffset:                UInt32;                                    {    SS_SIZE}
  146.         slowest:                UInt16;                                    {    SS_SPEED}
  147.         fastest:                UInt16;                                    {    SS_SPEED}
  148.     END;
  149.  
  150.     SS_IOWINTBL = RECORD
  151.         ioWndCaps:                UInt16;                                    {    SS_FLAGS16}
  152.         firstByte:                UInt32;                                    {    SS_BASE}
  153.         lastByte:                UInt32;                                    {    SS_BASE}
  154.         minSize:                UInt32;                                    {    SS_SIZE}
  155.         maxSize:                UInt32;                                    {    SS_SIZE}
  156.         reqGran:                UInt32;                                    {    SS_SIZE}
  157.         addrLines:                UInt16;                                    {    SS_COUNT}
  158.         eisaSlot:                SInt8; (* Byte *)                        {    SS_FLAGS8}
  159.         padding:                ARRAY [0..0] OF SInt8; (* Byte *)        {    }
  160.     END;
  161.  
  162.     SS_WISTRUCT = RECORD
  163.         bufferLength:            UInt16;                                    {    SS_WORD}
  164.         dataLength:                UInt16;                                    {    SS_WORD}
  165.         numTblEntries:            UInt16;                                    {    SS_WORD}
  166.         memWinTbl:                SS_MEMWINTBL;
  167.         ioWinTbl:                SS_IOWINTBL;
  168.     END;
  169.  
  170. {————————————————————————————————————————————————————————————————————————
  171.     function selectors passed to Socket Service entry point
  172. ————————————————————————————————————————————————————————————————————————}
  173.  
  174. CONST
  175.     fnSSGetAdapterCount            = $80;
  176.     fnSSUnsupported81            = $81;
  177.     fnSSUnsupported82            = $82;
  178.     fnSSGetSSInfo                = $83;
  179.     fnSSInquireAdapter            = $84;
  180.     fnSSGetAdapter                = $85;
  181.     fnSSSetAdapter                = $86;
  182.     fnSSInquireWindow            = $87;
  183.     fnSSGetWindow                = $88;
  184.     fnSSSetWindow                = $89;
  185.     fnSSGetPage                    = $8A;
  186.     fnSSSetPage                    = $8B;
  187.     fnSSInquireSocket            = $8C;
  188.     fnSSGetSocket                = $8D;
  189.     fnSSSetSocket                = $8E;
  190.     fnSSGetStatus                = $8F;
  191.     fnSSResetSocket                = $90;
  192.     fnSSUnsupported91            = $91;
  193.     fnSSUnsupported92            = $92;
  194.     fnSSUnsupported93            = $93;
  195.     fnSSUnsupported94            = $94;
  196.     fnSSInquireEDC                = $95;
  197.     fnSSGetEDC                    = $96;
  198.     fnSSSetEDC                    = $97;
  199.     fnSSStartEDC                = $98;
  200.     fnSSPauseEDC                = $99;
  201.     fnSSResumeEDC                = $9A;
  202.     fnSSStopEDC                    = $9B;
  203.     fnSSReadEDC                    = $9C;
  204.     fnSSGetVendorInfo            = $9D;
  205.     fnSSAcknowledgeInterrupt    = $9E;
  206.     fnSSGetSetPriorHandler        = $9F;
  207.     fnSSGetSetSSAddr            = $A0;
  208.     fnSSGetAccessOffsets        = $A1;
  209.     fnSSUnsupportedA2            = $A2;
  210.     fnSSUnsupportedA3            = $A3;
  211.     fnSSUnsupportedA4            = $A4;
  212.     fnSSUnsupportedA5            = $A5;
  213.     fnSSUnsupportedA6            = $A6;
  214.     fnSSUnsupportedA7            = $A7;
  215.     fnSSUnsupportedA8            = $A8;
  216.     fnSSUnsupportedA9            = $A9;
  217.     fnSSUnsupportedAA            = $AA;
  218.     fnSSUnsupportedAB            = $AB;
  219.     fnSSUnsupportedAC            = $AC;
  220.     fnSSUnsupportedAD            = $AD;
  221.     fnSSVendorSpecific            = $AE;
  222.  
  223. {    SSVendorSpecificPB.function values}
  224.     fnVSReserved                = $00;
  225.     fnVSGetSocketLocationIcon    = $01;
  226.     fnVSGetSocketLocationText    = $02;
  227.     fnVSDoSocketLocalization    = $03;
  228.     fnVSAppleSocketCapabilities    = $04;
  229.     fnVSSleepWakeNotification    = $05;
  230.  
  231. {————————————————————————————————————————————————————————————————————————
  232.     defines for the Socket Services function codes
  233. ————————————————————————————————————————————————————————————————————————}
  234.     AC_IND                        = 1;                            { adapter characteristics}
  235.     AC_PWR                        = 2;
  236.     AC_DBW                        = 4;
  237.  
  238.     AS_POWERDOWN                = 1;
  239.     AS_MAINTAIN                    = 2;
  240.  
  241.     EC_UNI                        = 1;
  242.     EC_BI                        = 2;
  243.     EC_REGISTER                    = 4;
  244.     EC_MEMORY                    = 8;
  245.     EC_PAUSABLE                    = 16;
  246.     EC_WRITE                    = 16;
  247.  
  248.     ET_CHECK8                    = 1;
  249.     ET_SDLC16                    = 2;
  250.  
  251.     IF_MEMORY                    = 1;
  252.     IF_IO                        = 2;
  253.  
  254.     IRQ_HIGH                    = 64;
  255.     IRQ_ENABLE                    = 128;
  256.  
  257.     IRQ_MEMORY                    = 4;
  258.     IRQ_IO                        = 4;
  259.  
  260.     PS_ATTRIBUTE                = $01;
  261.     PS_ENABLED                    = $02;
  262.     PS_WP                        = $04;
  263.  
  264.     PWR_VCC                        = 128;                            { Power pins in PwrEntry elements}
  265.     PWR_VPP1                    = 64;
  266.     PWR_VPP2                    = 32;
  267.  
  268.     SBM_WP                        = 1;
  269.     SBM_LOCKED                    = 2;
  270.     SBM_EJECT                    = 4;
  271.     SBM_INSERT                    = 8;
  272.     SBM_BVD1                    = 16;
  273.     SBM_BVD2                    = 32;
  274.     SBM_RDYBSY                    = 64;
  275.     SBM_CD                        = 128;
  276.  
  277.     SBM_LOCK                    = 16;
  278.     SBM_BATT                    = 32;
  279.     SBM_BUSY                    = 64;
  280.     SBM_XIP                        = 128;
  281.  
  282. { Vendor Specific Apple Socket Capabilities }
  283.     SBM_SLEEP_PWR                = 1;
  284.  
  285.     WC_COMMON                    = 1;
  286.     WC_IO                        = 2;
  287.     WC_ATTRIBUTE                = 4;
  288.     WC_TYPE_MASK                = 7;
  289.     WC_WAIT                        = 128;
  290.  
  291.     WC_BASE                        = 1;
  292.     WC_SIZE                        = 2;
  293.     WC_WENABLE                    = 4;
  294.     WC_8BIT                        = 8;
  295.     WC_16BIT                    = 16;
  296.     WC_BALIGN                    = 32;
  297.     WC_POW2                        = 64;
  298.     WC_CALIGN                    = 128;
  299.     WC_PAVAIL                    = 256;
  300.     WC_PSHARED                    = 512;
  301.     WC_PENABLE                    = 1024;
  302.     WC_WP                        = 2048;
  303.  
  304.     WC_INPACK                    = 128;
  305.     WC_EISA                        = 256;
  306.     WC_CENABLE                    = 512;
  307.  
  308.     WS_IO                        = 1;
  309.     WS_ENABLED                    = 2;
  310.     WS_16BIT                    = 4;
  311.  
  312.     WS_PAGED                    = 8;
  313.     WS_EISA                        = 16;
  314.     WS_CENABLE                    = 32;
  315.     WS_SWAP_LITTLE_TO_BIG_ENDIAN = 64;
  316.  
  317.     SS_SIG_VALUE                = $5353;                        { 'SS'}
  318.  
  319.     SS_CMPL_1_00                = $0100;                        { compliant with rev 1.0 of SS standard}
  320.     SS_CMPL_1_01                = $0101;                        { compliant with rev 1.01 of SS standard}
  321.     SS_CMPL_2_00                = $0200;                        { compliant with rev 2.0 of SS standard}
  322.     SS_CMPL_2_10                = $0210;                        { compliant with rev 2.1 of SS standard}
  323.  
  324. {————————————————————————————————————————————————————————————————————————
  325.     Universal ProcPtr for Socket Service entry point
  326. ————————————————————————————————————————————————————————————————————————}
  327. TYPE
  328.     PCCardSSEntryProcPtr = ProcPtr;  { FUNCTION PCCardSSEntry(fnCode: UInt16; callPB: Ptr; dataPtr: Ptr): INTEGER; }
  329.     PCCardSSEntryUPP = UniversalProcPtr;
  330.  
  331. CONST
  332.     uppPCCardSSEntryProcInfo = $00000FA0; { FUNCTION (2 byte param, 4 byte param, 4 byte param): 2 byte result; }
  333.  
  334. FUNCTION NewPCCardSSEntryProc(userRoutine: PCCardSSEntryProcPtr): PCCardSSEntryUPP;
  335.     {$IFC NOT GENERATINGCFM }
  336.     INLINE $2E9F;
  337.     {$ENDC}
  338.  
  339. FUNCTION CallPCCardSSEntryProc(fnCode: UInt16; callPB: Ptr; dataPtr: Ptr; userRoutine: PCCardSSEntryUPP): INTEGER;
  340.     {$IFC NOT GENERATINGCFM}
  341.     INLINE $205F, $4E90;
  342.     {$ENDC}
  343. {————————————————————————————————————————————————————————————————————————
  344.     Card Services calls used by a Socket Service
  345. ————————————————————————————————————————————————————————————————————————}
  346.  
  347. TYPE
  348.     CSEventEntryPB = RECORD
  349.         ssHandlerID:            UInt32;
  350.         adapter:                UInt16;
  351.         socket:                    UInt16;
  352.         message:                UInt16;
  353.         intrpBits:                SInt8; (* Byte *)
  354.         padding:                SInt8; (* Byte *)
  355.     END;
  356.  
  357.     PCCardCSEntryProcPtr = ProcPtr;  { PROCEDURE PCCardCSEntry(VAR pb: CSEventEntryPB); }
  358.     PCCardCSEntryUPP = UniversalProcPtr;
  359.  
  360. CONST
  361.     uppPCCardCSEntryProcInfo = $000000C0; { PROCEDURE (4 byte param); }
  362.  
  363. FUNCTION NewPCCardCSEntryProc(userRoutine: PCCardCSEntryProcPtr): PCCardCSEntryUPP;
  364.     {$IFC NOT GENERATINGCFM }
  365.     INLINE $2E9F;
  366.     {$ENDC}
  367.  
  368. PROCEDURE CallPCCardCSEntryProc(VAR pb: CSEventEntryPB; userRoutine: PCCardCSEntryUPP);
  369.     {$IFC NOT GENERATINGCFM}
  370.     INLINE $205F, $4E90;
  371.     {$ENDC}
  372. {------------        AddSocketServices        ------------                            }
  373.  
  374. TYPE
  375.     AddSocketServicesPB = RECORD
  376.         ssEntry:                PCCardSSEntryUPP;                        { -> given to CS for its use}
  377.         csEntry:                PCCardCSEntryUPP;                        { <- taken from CS so we know where to enter}
  378.         dataPtr:                UInt32;
  379.         attributes:                UInt32;
  380.         numAdapters:            UInt16;
  381.         numSockets:                UInt16;
  382.     END;
  383.  
  384. {------------         ReplaceSocketServices    ------------                            }
  385.     ReplaceSocketServicesPB = RECORD
  386.         ssEntry:                PCCardSSEntryUPP;
  387.         oldSSEntry:                PCCardSSEntryUPP;
  388.         dataPtr:                UInt32;
  389.         socket:                    UInt16;
  390.         numSockets:                UInt16;
  391.         attributes:                UInt16;
  392.     END;
  393.  
  394.  
  395. FUNCTION CSAddSocketServices(VAR pb: AddSocketServicesPB): OSErr;
  396.     {$IFC NOT GENERATINGCFM}
  397.     INLINE $7050, $AAF0;
  398.     {$ENDC}
  399. FUNCTION CSReplaceSocketServices(VAR pb: ReplaceSocketServicesPB): OSErr;
  400.     {$IFC NOT GENERATINGCFM}
  401.     INLINE $7051, $AAF0;
  402.     {$ENDC}
  403. {————————————————————————————————————————————————————————————————————————
  404.     parameter blocks for each Socket Service function
  405. ————————————————————————————————————————————————————————————————————————}
  406.  
  407. TYPE
  408.     SSAcknowledgeInterruptPB = RECORD
  409.         adapter:                UInt16;                                    {    SS_ADAPTER}
  410.         sockets:                UInt16;                                    {    SS_SKTBITS}
  411.     END;
  412.  
  413.     SSGetAccessOffsetsPB = RECORD
  414.         adapter:                UInt16;                                    {    SS_ADAPTER}
  415.         mode:                    SInt8; (* Byte *)                        {    SS_BYTE}
  416.         reserved:                SInt8; (* Byte *)                        {    padding}
  417.         count:                    UInt16;                                    {    SS_COUNT}
  418.         buffer:                    Ptr;                                    {    SS_PTR}
  419.         numAvail:                UInt16;                                    {    SS_COUNT}
  420.     END;
  421.  
  422.     SSGetAdapterCountPB = RECORD
  423.         totalAdapters:            UInt16;                                    {    SS_COUNT}
  424.         sig:                    UInt16;                                    {    SS_SIGNATURE}
  425.     END;
  426.  
  427.     SSGetSetAdapterPB = RECORD
  428.         adapter:                UInt16;                                    {    SS_ADAPTER}
  429.         state:                    SInt8; (* Byte *)                        {    SS_FLAGS8}
  430.         irqStatus:                SInt8; (* Byte *)                        {    SS_IRQ}
  431.     END;
  432.  
  433.     SSGetSetEDCPB = RECORD
  434.         adapter:                UInt16;                                    {    SS_ADAPTER}
  435.         edc:                    UInt16;                                    {    SS_EDC}
  436.         socket:                    UInt16;                                    {    SS_SOCKET}
  437.         state:                    SInt8; (* Byte *)                        {    SS_FLAGS8}
  438.         edcType:                SInt8; (* Byte *)                        {    SS_FLAGS8}
  439.     END;
  440.  
  441.     SSGetSetPagePB = RECORD
  442.         adapter:                UInt16;                                    {    SS_ADAPTER}
  443.         window:                    UInt16;                                    {    SS_WINDOW}
  444.         page:                    UInt16;                                    {    SS_PAGE}
  445.         state:                    SInt8; (* Byte *)                        {    SS_FLAGS8}
  446.         reserved:                SInt8; (* Byte *)                        {    padding}
  447.         offset:                    UInt32;                                    {    SS_OFFSET}
  448.     END;
  449.  
  450.     SSGetSetPriorHandlerPB = RECORD
  451.         adapter:                UInt16;                                    {    SS_ADAPTER}
  452.         mode:                    SInt8; (* Byte *)                        {    SS_FLAGS8}
  453.         reserved:                SInt8; (* Byte *)                        {    padding}
  454.         handler:                Ptr;                                    {    SS_PTR}
  455.     END;
  456.  
  457.     SSGetSetSocketPB = RECORD
  458.         adapter:                UInt16;                                    {    SS_ADAPTER}
  459.         socket:                    UInt16;                                    {    SS_SOCKET}
  460.         vccIndex:                UInt16;                                    {    SS_PWRINDEX}
  461.         vpp1Index:                UInt16;                                    {    SS_PWRINDEX}
  462.         vpp2Index:                UInt16;                                    {    SS_PWRINDEX}
  463.         scIntMask:                SInt8; (* Byte *)                        {    SS_FLAGS8}
  464.         state:                    SInt8; (* Byte *)                        {    SS_FLAGS8}
  465.         ctlInd:                    SInt8; (* Byte *)                        {    SS_FLAGS8}
  466.         ireqRouting:            SInt8; (* Byte *)                        {    SS_IRQ}
  467.         ifType:                    SInt8; (* Byte *)                        {    SS_FLAGS8}
  468.         padding:                ARRAY [0..0] OF SInt8; (* Byte *)        {    }
  469.     END;
  470.  
  471.     SSGetSetSSAddrPB = RECORD
  472.         adapter:                UInt16;                                    {    SS_ADAPTER}
  473.         mode:                    SInt8; (* Byte *)                        {    SS_BYTE}
  474.         subfunc:                SInt8; (* Byte *)                        {    SS_BYTE}
  475.         numAddData:                UInt16;                                    {    SS_COUNT}
  476.         buffer:                    Ptr;                                    {    SS_PTR}
  477.     END;
  478.  
  479.     SSGetSetWindowPB = RECORD
  480.         adapter:                UInt16;                                    {    SS_ADAPTER}
  481.         window:                    UInt16;                                    {    SS_WINDOW}
  482.         socket:                    UInt16;                                    {    SS_SOCKET}
  483.         size:                    UInt32;                                    {    SS_SIZE}
  484.         state:                    SInt8; (* Byte *)                        {    SS_FLAGS8}
  485.         reserved:                SInt8; (* Byte *)                        {    padding}
  486.         speed:                    UInt16;                                    {    SS_SPEED}
  487.         base:                    UInt32;                                    {    SS_BASE}
  488.     END;
  489.  
  490.     SSGetSSInfoPB = RECORD
  491.         adapter:                UInt16;                                    {    SS_ADAPTER}
  492.         compliance:                UInt16;                                    {    SS_BCD}
  493.         numAdapters:            UInt16;                                    {    SS_COUNT}
  494.         firstAdapter:            UInt16;                                    {    SS_ADAPTER}
  495.     END;
  496.  
  497.     SSGetStatusPB = RECORD
  498.         adapter:                UInt16;                                    {    SS_ADAPTER}
  499.         socket:                    UInt16;                                    {    SS_SOCKET}
  500.         cardState:                SInt8; (* Byte *)                        {    SS_FLAGS8}
  501.         socketState:            SInt8; (* Byte *)                        {    SS_FLAGS8}
  502.         ctlInd:                    SInt8; (* Byte *)                        {    SS_FLAGS8}
  503.         ireqRouting:            SInt8; (* Byte *)                        {    SS_IRQ}
  504.         ifType:                    SInt8; (* Byte *)                        {    SS_FLAGS8}
  505.         padding:                ARRAY [0..0] OF SInt8; (* Byte *)        {    }
  506.     END;
  507.  
  508.     SSGetVendorInfoPB = RECORD
  509.         adapter:                UInt16;                                    {    SS_ADAPTER}
  510.         vendorInfoType:            SInt8; (* Byte *)                        {    SS_BYTE}
  511.         reserved:                SInt8; (* Byte *)                        {    padding}
  512.         buffer:                    Ptr;                                    {    SS_PTR}
  513.         release:                UInt16;                                    {    SS_BCD}
  514.     END;
  515.  
  516.     SSInquireAdapterPB = RECORD
  517.         adapter:                UInt16;                                    {    SS_ADAPTER}
  518.         buffer:                    Ptr;                                    {    SS_PTR}
  519.         numSockets:                UInt16;                                    {    SS_COUNT}
  520.         numWindows:                UInt16;                                    {    SS_COUNT}
  521.         numEDCs:                UInt16;                                    {    SS_COUNT}
  522.     END;
  523.  
  524.     SSInquireEDCPB = RECORD
  525.         adapter:                UInt16;                                    {    SS_ADAPTER}
  526.         edc:                    UInt16;                                    {    SS_EDC}
  527.         sockets:                UInt16;                                    {    SS_SKTBITS}
  528.         caps:                    SInt8; (* Byte *)                        {    SS_FLAGS8}
  529.         types:                    SInt8; (* Byte *)                        {    SS_FLAGS8}
  530.     END;
  531.  
  532.     SSInquireSocketPB = RECORD
  533.         adapter:                UInt16;                                    {    SS_ADAPTER}
  534.         socket:                    UInt16;                                    {    SS_SOCKET}
  535.         buffer:                    Ptr;                                    {    SS_PTR}
  536.         scIntCaps:                SInt8; (* Byte *)                        {    SS_FLAGS8}
  537.         scRptCaps:                SInt8; (* Byte *)                        {    SS_FLAGS8}
  538.         ctlIndCaps:                SInt8; (* Byte *)                        {    SS_FLAGS8}
  539.         padding:                ARRAY [0..0] OF SInt8; (* Byte *)        {    }
  540.     END;
  541.  
  542.     SSInquireWindowPB = RECORD
  543.         adapter:                UInt16;                                    {    SS_ADAPTER}
  544.         window:                    UInt16;                                    {    SS_WINDOW}
  545.         buffer:                    Ptr;                                    {    SS_PTR}
  546.         wndCaps:                SInt8; (* Byte *)                        {    SS_FLAGS8}
  547.         reserved:                SInt8; (* Byte *)                        {    padding}
  548.         sockets:                UInt16;                                    {    SS_SKTBITS}
  549.     END;
  550.  
  551.     SSPauseEDCPB = RECORD
  552.         adapter:                UInt16;                                    {    SS_ADAPTER}
  553.         edc:                    UInt16;                                    {    SS_EDC}
  554.     END;
  555.  
  556.     SSReadEDCPB = RECORD
  557.         adapter:                UInt16;                                    {    SS_ADAPTER}
  558.         edc:                    UInt16;                                    {    SS_EDC}
  559.         value:                    UInt16;                                    {    SS_WORD}
  560.     END;
  561.  
  562.     SSResetSocketPB = RECORD
  563.         adapter:                UInt16;                                    {    SS_ADAPTER}
  564.         socket:                    UInt16;                                    {    SS_SOCKET}
  565.     END;
  566.  
  567.     SSResumeEDCPB = RECORD
  568.         adapter:                UInt16;                                    {    SS_ADAPTER}
  569.         edc:                    UInt16;                                    {    SS_EDC}
  570.     END;
  571.  
  572.     SSStartEDCPB = RECORD
  573.         adapter:                UInt16;                                    {    SS_ADAPTER}
  574.         edc:                    UInt16;                                    {    SS_EDC}
  575.     END;
  576.  
  577.     SSStopEDCPB = RECORD
  578.         adapter:                UInt16;                                    {    SS_ADAPTER}
  579.         edc:                    UInt16;                                    {    SS_EDC}
  580.     END;
  581.  
  582.     SSVendorSpecificPB = RECORD
  583.         vsFunction:                UInt16;                                    {    SS_WORD}
  584.         adapter:                UInt16;                                    {    SS_ADAPTER}
  585.         socket:                    UInt16;                                    {    SS_SOCKET}
  586.         bufferSize:                UInt16;                                    {    SS_WORD}
  587.         buffer:                    Ptr;                                    {    SS_PTR}
  588.         attributes:                UInt32;                                    {    SS_LONG}
  589.     END;
  590.  
  591. {    ‘attributes’ constants }
  592.  
  593. CONST
  594.     kSSGoingToSleep                = $00000001;
  595.     kSSWakingFromSleep            = $00000002;
  596.  
  597. {————————————————————————————————————————————————————————————————————————
  598.     Non-specific Socket Services Functions
  599. ————————————————————————————————————————————————————————————————————————}
  600.  
  601. FUNCTION SSGetAdapterCount(VAR pb: SSGetAdapterCountPB; dataPtr: Ptr): SS_RETCODE;
  602. {————————————————————————————————————————————————————————————————————————
  603.     Adapter Functions
  604. ————————————————————————————————————————————————————————————————————————}
  605. FUNCTION SSAcknowledgeInterrupt(VAR pb: SSAcknowledgeInterruptPB; dataPtr: Ptr): SS_RETCODE;
  606. FUNCTION SSGetSetPriorHandler(VAR pb: SSGetSetPriorHandlerPB; dataPtr: Ptr): SS_RETCODE;
  607. FUNCTION SSGetSetSSAddr(VAR pb: SSGetSetSSAddrPB; dataPtr: Ptr): SS_RETCODE;
  608. FUNCTION SSGetAccessOffsets(VAR pb: SSGetAccessOffsetsPB; dataPtr: Ptr): SS_RETCODE;
  609. FUNCTION SSGetAdapter(VAR pb: SSGetSetAdapterPB; dataPtr: Ptr): SS_RETCODE;
  610. FUNCTION SSGetSSInfo(VAR pb: SSGetSSInfoPB; dataPtr: Ptr): SS_RETCODE;
  611. FUNCTION SSGetVendorInfo(VAR pb: SSGetVendorInfoPB; dataPtr: Ptr): SS_RETCODE;
  612. FUNCTION SSInquireAdapter(VAR pb: SSInquireAdapterPB; dataPtr: Ptr): SS_RETCODE;
  613. FUNCTION SSSetAdapter(VAR pb: SSGetSetAdapterPB; dataPtr: Ptr): SS_RETCODE;
  614. FUNCTION SSVendorSpecific(VAR pb: SSVendorSpecificPB; dataPtr: Ptr): SS_RETCODE;
  615. {————————————————————————————————————————————————————————————————————————
  616.     Socket Functions
  617. ————————————————————————————————————————————————————————————————————————}
  618. FUNCTION SSGetSocket(VAR pb: SSGetSetSocketPB; dataPtr: Ptr): SS_RETCODE;
  619. FUNCTION SSGetStatus(VAR pb: SSGetStatusPB; dataPtr: Ptr): SS_RETCODE;
  620. FUNCTION SSInquireSocket(VAR pb: SSInquireSocketPB; dataPtr: Ptr): SS_RETCODE;
  621. FUNCTION SSResetSocket(VAR pb: SSResetSocketPB; dataPtr: Ptr): SS_RETCODE;
  622. FUNCTION SSSetSocket(VAR pb: SSGetSetSocketPB; dataPtr: Ptr): SS_RETCODE;
  623. {————————————————————————————————————————————————————————————————————————
  624.     Window Functions
  625. ————————————————————————————————————————————————————————————————————————}
  626. FUNCTION SSGetPage(VAR pb: SSGetSetPagePB; dataPtr: Ptr): SS_RETCODE;
  627. FUNCTION SSGetWindow(VAR pb: SSGetSetWindowPB; dataPtr: Ptr): SS_RETCODE;
  628. FUNCTION SSInquireWindow(VAR pb: SSInquireWindowPB; dataPtr: Ptr): SS_RETCODE;
  629. FUNCTION SSSetPage(VAR pb: SSGetSetPagePB; dataPtr: Ptr): SS_RETCODE;
  630. FUNCTION SSSetWindow(VAR pb: SSGetSetWindowPB; dataPtr: Ptr): SS_RETCODE;
  631. {————————————————————————————————————————————————————————————————————————
  632.     Error Detection Functions
  633. ————————————————————————————————————————————————————————————————————————}
  634. FUNCTION SSGetEDC(VAR pb: SSGetSetEDCPB; dataPtr: Ptr): SS_RETCODE;
  635. FUNCTION SSInquireEDC(VAR pb: SSInquireEDCPB; dataPtr: Ptr): SS_RETCODE;
  636. FUNCTION SSPauseEDC(VAR pb: SSPauseEDCPB; dataPtr: Ptr): SS_RETCODE;
  637. FUNCTION SSReadEDC(VAR pb: SSReadEDCPB; dataPtr: Ptr): SS_RETCODE;
  638. FUNCTION SSResumeEDC(VAR pb: SSResumeEDCPB; dataPtr: Ptr): SS_RETCODE;
  639. FUNCTION SSSetEDC(VAR pb: SSGetSetEDCPB; dataPtr: Ptr): SS_RETCODE;
  640. FUNCTION SSStartEDC(VAR pb: SSStartEDCPB; dataPtr: Ptr): SS_RETCODE;
  641. FUNCTION SSStopEDC(VAR pb: SSStopEDCPB; dataPtr: Ptr): SS_RETCODE;
  642.  
  643. {$ALIGN RESET}
  644. {$POP}
  645.  
  646. {$SETC UsingIncludes := SocketServicesIncludes}
  647.  
  648. {$ENDC} {__SOCKETSERVICES__}
  649.  
  650. {$IFC NOT UsingIncludes}
  651.  END.
  652. {$ENDC}
  653.